草庐IT

c++ - 为什么我们在 C++ 中使用 printf() 函数?

全部标签

c -/vs.\in CMD 和 C 系统函数中可执行文件的相对路径

考虑以下Windows10上的CMDsession,以#开头的行是注释:#WehavethissimpleprogramD:\testdir>typeprg.c#includeintmain(){printf("Helloprg");return0;}#Thisis"realgcc.exe(Rev2,BuiltbyMSYS2project)6.2.0"D:\testdir>gccprg.c-oprgD:\testdir>prg.exeHelloprgD:\testdir>mddirD:\testdir>cddirD:\testdir\dir>..\prg.exeHelloprg#Thi

c - 如果 getaddrinfo 失败一次,它将永远失败(即使在网络准备就绪之后)

我正在编写一个作为systemdservice运行的C应用程序在启动时(发行版:ArchLinux)并且应该连接到服务器。因为应用程序是在启动时运行的,所以最终会发生网络连接尚未建立的情况。这自然会导致需要一个的第一个函数失败,在我的例子中是getaddrinfo。所以我想我会写一个循环,重复调用getaddrinfo直到它在网络准备就绪后成功。不幸的是,我发现即使在建立连接后,getaddrinfo仍会失败并显示nameorservicenotknown。我可以通过主机名ping服务器,但getaddrinfo仍然无法执行此操作。如果我停止应用程序并再次运行它,一切正常。如果网络连接

c - 如果 getaddrinfo 失败一次,它将永远失败(即使在网络准备就绪之后)

我正在编写一个作为systemdservice运行的C应用程序在启动时(发行版:ArchLinux)并且应该连接到服务器。因为应用程序是在启动时运行的,所以最终会发生网络连接尚未建立的情况。这自然会导致需要一个的第一个函数失败,在我的例子中是getaddrinfo。所以我想我会写一个循环,重复调用getaddrinfo直到它在网络准备就绪后成功。不幸的是,我发现即使在建立连接后,getaddrinfo仍会失败并显示nameorservicenotknown。我可以通过主机名ping服务器,但getaddrinfo仍然无法执行此操作。如果我停止应用程序并再次运行它,一切正常。如果网络连接

c - netfilter_queue 虚假数据包

我正在使用netfilter队列库实现用户空间防火墙。我使用nfq_fd()获得了队列的文件描述符,因此我可以调用recv(fd,recv_buf,BUFFERSIZE,MSG_DONTWAIT)来获取数据包数据而不会阻塞。但有时recv()在我每次调用它时都会开始返回52字节的数据包。如果我检查iptables-nvLINPUT的输出,数据包的数量不会增加,所以它们实际上并不是从网络发送的。Edit3:当我向nfq_handle_packet()传递其中一个奇怪的数据包时,它返回-1,并且它永远不会触发回调函数,因此我无法获取数据包ID或返回结论。为什么recv()给我这些奇怪的数据

c - netfilter_queue 虚假数据包

我正在使用netfilter队列库实现用户空间防火墙。我使用nfq_fd()获得了队列的文件描述符,因此我可以调用recv(fd,recv_buf,BUFFERSIZE,MSG_DONTWAIT)来获取数据包数据而不会阻塞。但有时recv()在我每次调用它时都会开始返回52字节的数据包。如果我检查iptables-nvLINPUT的输出,数据包的数量不会增加,所以它们实际上并不是从网络发送的。Edit3:当我向nfq_handle_packet()传递其中一个奇怪的数据包时,它返回-1,并且它永远不会触发回调函数,因此我无法获取数据包ID或返回结论。为什么recv()给我这些奇怪的数据

java - 什么会导致 Java native 函数(在 C 中)在进入时出现段错误?

该项目我正在使用Javanative接口(interface)为内部网络和网络测试工具的C库编写Java命令行接口(interface)。C代码(不是我写的)复杂且低级,通常在位级别操作内存,并且专门使用原始套接字。该应用程序从C端(在后台运行的pthreads)和Java端(ScheduledThreadPoolExecutors运行调用native代码的线程)是多线程的。也就是说,C库应该大部分是稳定的。事实证明,Java和JNI接口(interface)代码导致了问题。问题应用程序在进入nativeC函数时因段错误而崩溃。这仅在程序处于特定状态时发生(即成功运行特定native函

java - 什么会导致 Java native 函数(在 C 中)在进入时出现段错误?

该项目我正在使用Javanative接口(interface)为内部网络和网络测试工具的C库编写Java命令行接口(interface)。C代码(不是我写的)复杂且低级,通常在位级别操作内存,并且专门使用原始套接字。该应用程序从C端(在后台运行的pthreads)和Java端(ScheduledThreadPoolExecutors运行调用native代码的线程)是多线程的。也就是说,C库应该大部分是稳定的。事实证明,Java和JNI接口(interface)代码导致了问题。问题应用程序在进入nativeC函数时因段错误而崩溃。这仅在程序处于特定状态时发生(即成功运行特定native函

c++ - 关于 C++ 中名称修饰的问题

我正在尝试学习和理解C++中的名称修饰。以下是一些问题:(1)来自devxWhenaglobalfunctionisoverloaded,thegeneratedmanglednameforeachoverloadedversionisunique.Namemanglingisalsoappliedtovariables.Thus,alocalvariableandaglobalvariablewiththesameuser-givennamestillgetdistinctmanglednames.除了重载函数和同名全局和局部变量之外,还有其他使用名称修饰的示例吗?(2)来自Wiki

c++ - 关于 C++ 中名称修饰的问题

我正在尝试学习和理解C++中的名称修饰。以下是一些问题:(1)来自devxWhenaglobalfunctionisoverloaded,thegeneratedmanglednameforeachoverloadedversionisunique.Namemanglingisalsoappliedtovariables.Thus,alocalvariableandaglobalvariablewiththesameuser-givennamestillgetdistinctmanglednames.除了重载函数和同名全局和局部变量之外,还有其他使用名称修饰的示例吗?(2)来自Wiki

c++ - 函数指针的解引用是如何发生的?

为什么以及如何取消引用函数指针只是“什么都不做”?这就是我要说的:#includevoidhello(){printf("hello");}intmain(void){(*****hello)();}来自here的评论:functionpointersdereferencejustfine,buttheresultingfunctiondesignatorwillbeimmediatelyconvertedbacktoafunctionpointer从回答here:Dereferencing(inwayyouthink)afunction'spointermeans:accessing
12